#include <stdio.h>
void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n)
{
    int big = 0;
    int small = 0;
    while (small < n)
    {
        while (big < small + m)
        {
            if (nums2[small] < nums1[big])
            {
                int tem = m - 1 + m - small;
                while (tem - 1 >= small)
                {
                    nums1[tem] = nums1[tem - 1];
                    tem--;
                }
            }
            big++;
        }
        small++;
    }
}
//int main()
//{
//    int arr1[6] = { 4,5,6,0,0,0 };
//    int arr2[3] = { 1,2,3 };
//
//
//    merge(arr1, 3, 3, arr2, 3, 3);
//    return 0;
//}

//
//void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n)
//{
//    int big = m - 1;
//    int small = n - 1;
//    int mergedIndex = m + n - 1;
//
//    while (small >= 0)
//    {
//        while (big >= 0 && nums2[small] < nums1[big])
//        {
//            nums1[mergedIndex] = nums1[big];
//            big--;
//            mergedIndex--;
//        }
//
//        nums1[mergedIndex] = nums2[small];
//        small--;
//        mergedIndex--;
//    }
//}

int main()
{
    int arr1[6] = { 4, 5, 6, 0, 0, 0 };
    int arr2[3] = { 1, 2, 3 };

    merge(arr1, 3, 3, arr2, 3, 3);

    // Print the merged array
    for (int i = 0; i < 6; i++)
    {
        printf("%d ", arr1[i]);
    }

    return 0;
}
